import { defineConfig } from "vite";
import fs from "node:fs";

/**
 * 获取 package.json 中的版本号
 * @returns { string } version
 */
function getAppVersion() {
  const pkg = JSON.parse(fs.readFileSync("./package.json", "utf-8"));
  return pkg.version;
}

/**
 * new Date 获取日期
 * @returns { string }
 */
function getDate() {
  const now = new Date();
  const year = now.getFullYear(); // 年份
  const month = now.getMonth() + 1; // 月份，从0开始，所以加1
  const day = now.getDate(); // 日期
  const hours = now.getHours(); // 小时
  const minutes = now.getMinutes(); // 分钟
  const seconds = now.getSeconds(); // 秒
  const result = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
  return result;
}

// https://vitejs.dev/config/
export default defineConfig(({ mode }) => {
  // 处理生产环境变量为 undefind 异常问题
  process.env.VITE__UNI_PPTX_VERSION__ = getAppVersion();
  process.env.VITE__UNI_PPTX_LAST_UPDATE__ = getDate(); // 最后更新时间

  if (mode === "lib") {
    return {
      build: {
        // 打包成第三方库-不使用 index.html 为入口文件
        lib: {
          entry: "src/core/index.ts",
          name: "uni-pptx",
          formats: ["es", "cjs", "umd"],
          fileName: "uni-pptx",
        },
      },
    };
  }
  return {
    server: {
      open: true,
      port: 3000,
      host: "0.0.0.0",
    },
  };
});
